#ifndef TABLESYMBOLEMANAGER_HPP
#define TABLESYMBOLEMANAGER_HPP
#include <iostream>
#include <vector>
#include "Type.hpp"
#include "Symbole.hpp"
#include "Niveau.hpp"
#include "TableSymb.hpp"

using namespace std;


class TableSymboleManager 
{
private:

  vector<Niveau> niveaux;

  TableSymboleManager(); 

public:
  static TableSymboleManager& getInstanceOf(){
    static TableSymboleManager instance;
    return instance;
  }
  void nouvelleTable();
  void nouveauNiveau();//créé 1 table des symboles
  const TableSymb getTableSymbCurrent();
  
  //rechercher un symbole dans les tables des symoboles
  const Symbole* find(unsigned int numeroNiveau);
  
  ~TableSymboleManager();
};

#endif
